-- Control y Mantenimiento de Pc's
CREATE DATABASE DB_CMP
GO

USE DB_CMP
GO

CREATE TABLE tb_categoria (
  id_categoria int NOT NULL IDENTITY,
  tipo_categoria varchar(45) NULL,
  PRIMARY KEY (id_categoria)
)
GO

-- Table structure for table 'tb_dominio'
--

CREATE TABLE tb_dominio (
  id_dominio smallint NOT NULL IDENTITY,
  dominio_nombre varchar(60) NOT NULL,
  dominio_ip_servidor varchar(15) NULL,
  dominio_servidor varchar(30) NULL,
  PRIMARY KEY (id_dominio)
) 
GO

--
-- Table structure for table 'tb_fabricante'
--
CREATE TABLE tb_fabricante (
  id_fabricante tinyint NOT NULL IDENTITY,
  fabricante_nombre varchar(30) NOT NULL,
  fabricante_pagina_web varchar(50) NULL,
  PRIMARY KEY (id_fabricante)
)
GO

--TRIGGER
/*!50003 CREATE*/ /*!50017 DEFINER='root'@'localhost'*/ /*!50003 TRIGGER 'bd_inventpc_ab'.'tr_ReemplazarNull_Fabricante'
BEFORE INSERT ON 'bd_inventpc_ab'.'tb_fabricante'
FOR EACH ROW
BEGIN
		IF new.fabricante_pagina_web = "" then
			set new.fabricante_pagina_web = "SIN PAGINA WEB";			
		end if;						
	END */;;
-- DELIMITER ;


--
-- Table structure for table 'tb_lugar'
--

CREATE TABLE tb_lugar (
  id_lugar smallint NOT NULL IDENTITY,
  lugar_sede varchar(20) DEFAULT NULL,
  lugar_direccion varchar(40) DEFAULT 'Sin Direccion',
  PRIMARY KEY (id_lugar)
)
GO
-- TRIGGER
-- DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER='root'@'localhost'*/ /*!50003 TRIGGER 'bd_inventpc_ab'.'tr_ReemplazarNull_lugar'
BEFORE INSERT ON 'bd_inventpc_ab'.'tb_lugar'
FOR EACH ROW
BEGIN
		IF new.lugar_direccion = "" then
			set new.lugar_direccion = "SIN DIRECCION"; 
		end if;						
	END */;;
-- DELIMITER ;


--
-- Table structure for table 'tb_marca_x'
--

CREATE TABLE tb_marca (
  id_marca tinyint NOT NULL IDENTITY,
  marca_sigla varchar(15) NULL,
  marca_descripcion varchar(128) NOT NULL,
  marca_pagina_web varchar(128) NULL,
  PRIMARY KEY (id_marca)
)
GO

--TRIGGER
--DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER='root'@'localhost'*/ /*!50003 TRIGGER 'bd_inventpc_ab'.'tr_ReemplazarNull_Marca'
BEFORE INSERT ON 'bd_inventpc_ab'.'tb_marca_x'
FOR EACH ROW
BEGIN
		IF new.marca_pagina_web = "" then
			set new.marca_pagina_web = "SIN PAGINA WEB";			
		end if;						
	END */;;
--DELIMITER ;


--
-- Table structure for table 'tb_tipo_pc'
--

CREATE TABLE tb_tipo_pc (
  id_tipo_pc smallint NOT NULL IDENTITY,
  tipo_pc_descripcion varchar(30) NOT NULL,
  PRIMARY KEY (id_tipo_pc)
) 
GO

--
-- Table structure for table 'tb_ubicacion'
--

CREATE TABLE tb_ubicacion (
  id_ubicacion smallint NOT NULL IDENTITY,
  ubicacion_area varchar(180) NOT NULL,
  ubicacion_codigo varchar(4) DEFAULT NULL,
  ubicacion_sigla varchar(6) DEFAULT NULL,
  ubicacion_depende varchar(50) DEFAULT NULL,
  PRIMARY KEY (id_ubicacion)
) 
GO


--
-- Table structure for table 'tb_usuario'
--

CREATE TABLE tb_usuario (
  id_usuario int NOT NULL IDENTITY,
  usuario_nombre varchar(45) NULL,
  usuario_password varchar(45) NULL,
  usuario_tipo int NOT NULL,
  PRIMARY KEY (id_usuario)
) 
GO


--
-- Table structure for table 'tb_equipamiento_x'
--

CREATE TABLE tb_equipo (
  id_equipo int NOT NULL IDENTITY,  
  equipo_nombre_pc varchar(25) NULL,
  equipo_direccion_ip varchar(15) NULL UNIQUE,
  equipo_responsable varchar(25) NULL,
  equipo_direccion_mac varchar(18) NULL,
  equipo_xml_is int DEFAULT 0,
  equipo_xml_ruta varchar(55) NULL,  
  equipo_observacion varchar(250)  NULL,
  equipo_actualizado datetime NULL,
  equipo_licencia varchar(250) NULL,
  equipo_codigo_inventario varchar(10) NULL,
  equipo_fecha_creacion date DEFAULT NULL,
  tb_ubicacion_id_ubicacion smallint NOT NULL DEFAULT 1,
  tb_lugar_id_lugar smallint NOT NULL DEFAULT 1,
  --tb_dominio_id_dominio smallint NOT NULL DEFAULT 1,
  tb_tipo_pc_id_tipo_pc smallint NOT NULL DEFAULT 1,
  tb_marca_id_marca tinyint NOT NULL DEFAULT 1,
  PRIMARY KEY (id_equipo),
  --CONSTRAINT fk_tb_dominio1 FOREIGN KEY (tb_dominio_id_dominio) REFERENCES tb_dominio (id_dominio),
  CONSTRAINT fk_tb_lugar1 FOREIGN KEY (tb_lugar_id_lugar) REFERENCES tb_lugar (id_lugar),
  CONSTRAINT fk_tb_marca1 FOREIGN KEY (tb_marca_id_marca) REFERENCES tb_marca (id_marca),
  CONSTRAINT fk_tb_tipo_pc1 FOREIGN KEY (tb_tipo_pc_id_tipo_pc) REFERENCES tb_tipo_pc (id_tipo_pc),
  CONSTRAINT fk_tb_ubicacion1 FOREIGN KEY (tb_ubicacion_id_ubicacion) REFERENCES tb_ubicacion (id_ubicacion)
) 
GO

--
-- Table structure for table 'tbdetalle_equipo'
--

CREATE TABLE tb_detalle_equipo (
  id_detalle_equipo int NOT NULL IDENTITY,
  tb_categoria_id_categoria int NOT NULL,
  detalle_equipo_descripcion varchar(45) NULL,
  detalle_equipo_cantidad int NOT NULL,
  detalle_equipo_valor varchar(45) NULL,
  detalle_equipo_unidad varchar(45) NULL,
  detalle_equipo_observacion varchar(250),
  detalle_equipo_licencia varchar(250) NULL,
  tb_marca_id_marca tinyint NOT NULL,
  tb_equipo_id_equipo int NOT NULL,
  --tb_fabricante_id_fabricante tinyint NOT NULL,
  PRIMARY KEY (id_detalle_equipo),
  CONSTRAINT fk_tb_hard_soft_tb_categoria1 FOREIGN KEY (tb_categoria_id_categoria) REFERENCES tb_categoria (id_categoria),
  CONSTRAINT fk_tb_hard_soft_tb_equipo1 FOREIGN KEY (tb_equipo_id_equipo) REFERENCES tb_equipo (id_equipo),
  --CONSTRAINT fk_tb_hard_soft_tb_fabricante1 FOREIGN KEY (tb_fabricante_id_fabricante) REFERENCES tb_fabricante (id_fabricante),
  CONSTRAINT fk_tb_hard_soft_tb_marca1 FOREIGN KEY (tb_marca_id_marca) REFERENCES tb_marca(id_marca)
) 
GO

-- TRIGGER DETALLE EQUIPO
-- DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER='root'@'localhost'*/ /*!50003 TRIGGER 'bd_inventpc_ab'.'tr_ReemplazarNull_hard_soft'
BEFORE INSERT ON 'bd_inventpc_ab'.'tb_hard_soft'
FOR EACH ROW
BEGIN
		IF new.hard_soft_valor is null and new.hard_soft_unidad then
			set new.hard_soft_valor = "SIN VALOR";
			set new.hard_soft_unidad = "SIN UNIDAD";
		end if;						
	END */;;
-- DELIMITER ;

--
-- Table structure for table 'tb_mantenimiento'
--

CREATE TABLE tb_mantenimiento (
  id_mantenimiento int NOT NULL IDENTITY,
  mantenimiento_fecha date NULL,
  mantenimiento_historial text,
  tb_usuario_id_usuario int NOT NULL,
  tb_equipo_id_equipo int NOT NULL,
  PRIMARY KEY (id_mantenimiento),
  CONSTRAINT fk_tb_mantenimiento_tb_equipo1 FOREIGN KEY (tb_equipo_id_equipo) REFERENCES tb_equipo (id_equipo),
  CONSTRAINT fk_tb_mantenimiento_tb_usuario1 FOREIGN KEY (tb_usuario_id_usuario) REFERENCES tb_usuario (id_usuario)
) 
GO


